/*
 * Copyright 2020-2021 redragon.dongbin
 *
 * This file is part of redragon-erp/赤龙ERP.

 * redragon-erp/赤龙ERP is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.

 * redragon-erp/赤龙ERP is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with redragon-erp/赤龙ERP.  If not, see <https://www.gnu.org/licenses/>.
 */
package com.erp.hr.service;

import com.erp.hr.dao.model.HrStaff;
import com.erp.hr.dao.model.HrStaffDepartmentR;
import com.erp.hr.dao.model.HrStaffDepartmentRCO;
import com.erp.hr.dao.model.HrStaffDepartmentVO;
import org.redragon.framework.hibernate.DaoCRUDIF;
import org.redragon.framework.hibernate.model.Pages;
import java.util.List;

public interface HrStaffDepartmentRService extends DaoCRUDIF<HrStaffDepartmentR, HrStaffDepartmentRCO> {
    
    //获取职员部门关联对象列表
    public abstract List getHrStaffDepartmentRList(Pages pages, HrStaffDepartmentRCO paramObj);
    public List<HrStaffDepartmentR> getStaffListByDepartment(String departmentCode);
    //获取当前登录用户对应的上级领导
    public List<HrStaffDepartmentVO> getStaffByLader(HrStaffDepartmentR department);
    //获取当前单位所在的的岗位人员信息
    public List<HrStaffDepartmentVO> getStaffByPosition(String departmentCode,String positionId);
    //获取当前部门上一级公司的岗位人员信息
    public List<HrStaffDepartmentVO> getStaffByTopPosition(String departmentCode,String positionId);
    public List<HrStaffDepartmentVO> getStaffByDepartment(String departmentCode);

    /**
     * 根据岗位编码获取总部所有职员集合
     * @param postCode 岗位编码
     * @return 职员集合
     */
    List<HrStaff> getAllStaffByPostCode(String postCode);

    /**
     * 根据岗位编码获取分公司所有职员集合
     * @param companyCode 分公司编码
     * @param postCode 岗位编码
     * @return 职员集合
     */
    List<HrStaff> getAllStaffByPostCode(String companyCode, String postCode);

}
